#pragma once
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"

SG_DATASTRUCTURE_POST_NAMESPACE_OPEN

struct SHEARForceData
{
    SG::DataStructure::Common::Id   m_eId      = 0;    /// Element identification number
    SG::DataStructure::Common::Real m_F41      = 0.0;  /// Force  4 to 1
    SG::DataStructure::Common::Real m_F21      = 0.0;  /// Force  2 to 1
    SG::DataStructure::Common::Real m_F12      = 0.0;  /// Force  1 to 2
    SG::DataStructure::Common::Real m_F32      = 0.0;  /// Force  3 to 2
    SG::DataStructure::Common::Real m_F23      = 0.0;  /// Force  2 to 3
    SG::DataStructure::Common::Real m_F43      = 0.0;  /// Force  4 to 3
    SG::DataStructure::Common::Real m_F34      = 0.0;  /// Force  3 to 4
    SG::DataStructure::Common::Real m_F14      = 0.0;  /// Force  1 to 4
    SG::DataStructure::Common::Real m_KF1      = 0.0;  /// Kick Force on 1
    SG::DataStructure::Common::Real m_S12      = 0.0;  /// Shear  1    2
    SG::DataStructure::Common::Real m_KF2      = 0.0;  /// Kick Force on 2
    SG::DataStructure::Common::Real m_S23      = 0.0;  /// Shear  2    3
    SG::DataStructure::Common::Real m_KF3      = 0.0;  /// Kick Force on 3
    SG::DataStructure::Common::Real m_S34      = 0.0;  /// Shear  3    4
    SG::DataStructure::Common::Real m_KF4      = 0.0;  /// Kick Force on 4
    SG::DataStructure::Common::Real m_S41      = 0.0;  /// Shear  4    1
    SG::DataStructure::Common::Id   m_domainId = 0;    /// Domain identifier
};

///< @brief 判断数据是否相等
DECLSPEC bool operator== (const SHEARForceData& val1, const SHEARForceData& val2);

///< @brief 排序使用
DECLSPEC bool operator< (const SHEARForceData& a, const SHEARForceData& b);

SG_DATASTRUCTURE_POST_NAMESPACE_CLOSE
